home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 145
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin
/
games
/
spassion
/
source.lzh
/
SOURCE
/
ESHOT.H
< prev
next >
Wrap
Text File
|
2000-02-17
|
3KB
|
92 lines
/* eshot.h */
#ifndef ESHOT_X
#define ESHOT_X (*((short *) (&eshot->lx))) /*lxの上位ワード*/
#define ESHOT_Y (*((short *) (&eshot->ly))) /*lyの上位ワード*/
#endif
#define ESHOT_ERASE 14 /* 弾消し用定数 */
typedef struct ESHOT{
signed short x, y; /* 座標 */
short pt; /* スプライトパターンNo. */
short info; /* 反転コード・色・優先度を表わすデータ */
signed int lx, ly; /* 32bit X,Y 座標 ( l = longword ) */
signed int vx, vy; /* 速度 */
short *pt_; /* スプライトパターンNo.へのポインタ */
#if 0
signed short hit_px, hit_py; /* 対プレイヤー当たり判定 */
signed short hit_ox, hit_oy; /* 対オプション当たり判定 */
#endif
HIT_XY *hit_p; /* 対プレイヤー当たり判定 */
HIT_XY *hit_o; /* 対オプション当たり判定 */
BOX_PTR box,old_box; /* レーザーなどに使う */
signed short box_x, box_y; /* boxの基準になる座標 */
short type; /* 武器の種類 */
short arg; /* 引数 */
short state; /* 動き制御用 */
short angle; /* 角度 (0~255) */
unsigned char speed; /* 速度 (0~7) */
short flg; /* etc */
short laser; /* レーザー系か(テキストを使うか) */
short anim_count; /* アニメーションカウント */
short count; /* 汎用カウンタ */
short (*func_eshot_move)( struct ESHOT * ); /* 弾の動き用関数 */
struct ENEMY *enemy; /* この弾を撃った敵へのポインタ */
struct ESHOT *next, *pre; /* リスト */
}ESHOT;
/* 敵弾の情報(MakeEShotの引数) */
typedef struct ESHOTINFO{
short type; /* 敵の種類 */
signed short x, y; /* 座標 */
unsigned char speed; /* 速度 */
unsigned char angle; /* 角度 */
signed short t; /* */
short arg; /* 引数 */
signed short box_x, box_y; /* boxの基準になる座標 */
ENEMY *enemy; /* 発射した敵へのポインタ */
}ESHOTINFO;
enum {
ESHOT_ENG01 = 0, /* エネルギー弾(小) */
ESHOT_ENG02, /* エネルギー弾(中) */
ESHOT_ENG03, /* エネルギー弾(大) */
ESHOT_NOMAL, /* 通常弾 */
ESHOT_SYURIKEN, /* 手裏剣 */
ESHOT_ENERGY01, /* エネルギー弾(小) */
ESHOT_ENERGY02, /* エネルギー弾(中) */
ESHOT_ENERGY03, /* エネルギー弾(大) */
ESHOT_RING01, /* リング(中) */
ESHOT_RING02, /* リング(大) */
ESHOT_LASER00, /* レーザー */
ESHOT_CUTTER, /* カッター */
ESHOT_HOMING, /* ホーミング */
ESHOT_PARACHUTE, /* 落下傘 */
ESHOT_PARABOLA, /* 放物線 */
ESHOT_LASER01, /* 横レーザー */
ESHOT_LASEREX /* あとから太くなる横レーザー */
};
#ifdef GLOBAL_DEFINE /* グローバル変数の定義と宣言を1つにまとめるテク */
#define Extern /* Extern をヌル文字列に置換 */
#else
#define Extern extern /* Extern を extern に置換 */
#endif
char eshot_erase; /* >0 なら弾を消す */
/* 関数プロトタイプ宣言 */
void InitEShot0( void );
void InitEShot( void );
/*viod MakeEShot(short type, signed short x, signed short y, unsigned char speed, unsigned char angle, signed short t, short arg, ENEMY *enemy);*/
/*ESHOT *MakeEShot( ESHOTINFO * );*/
ESHOT *MakeEShot(short type, signed short x, signed short y,
unsigned char speed, unsigned char angle,
signed short t, short arg, ENEMY *enemy);
void MoveEShot( void );
ESHOT *EraseEShot( ESHOT *eshot );